home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / comm / misc / DragonDaemon.lha / DragonDaemon-Install / Entwickler / BlitzBASIC-Demo / Infotest.lst < prev    next >
Encoding:
File List  |  1999-05-08  |  3.6 KB  |  105 lines

  1.  
  2. ; -------------------------------------------------------------
  3. ; Gibt eine kurze Info als DragonDaemon-Requester aus
  4. ;
  5. ; Benoetigt Eintrag "blitzlibs:Amigalibs.res" in den
  6. ; Compiler-Optionen
  7. ; -------------------------------------------------------------
  8.  
  9. WBStartup
  10.  
  11. ; -------------------------------------------------------------
  12. ; DragonDaemon-Komandos
  13. ; -------------------------------------------------------------
  14.  
  15. #DDCMD_EXITDAEMON   =0
  16. #DDCMD_GETCOUNTER   =1
  17. #DDCMD_DIALNUMBER   =2
  18. #DDCMD_RESETCOUNTER =3
  19. #DDCMD_INFO         =4
  20. #DDCMD_REQUEST      =5
  21. #DDCMD_ERROR        =6
  22.  
  23. ; -------------------------------------------------------------
  24. ; DragonDaemon-Strukturen
  25. ; -------------------------------------------------------------
  26.  
  27. NEWTYPE.DD_Message
  28.   dd_StdMsg.Message
  29.   dd_Command.l
  30.   dd_Arg0.l
  31.   dd_Arg1.l
  32.   dd_Options.l
  33.   dd_Result.b[128]
  34.   dd_Return.l
  35. End NEWTYPE
  36.  
  37. ; -------------------------------------------------------------
  38. ; Variablen-Typen definieren
  39. ; -------------------------------------------------------------
  40.  
  41. DEFTYPE.l
  42. DEFTYPE.DD_Message *ddmsg
  43.  
  44. ; -------------------------------------------------------------
  45. ; Programm initialisieren
  46. ; -------------------------------------------------------------
  47.  
  48. *ddmsg=AllocVec_(SizeOf.DD_Message,#MEMF_CLEAR|#MEMF_PUBLIC)
  49. If *ddmsg
  50.   *ddreply.MsgPort =CreateMsgPort_()        ; ReplyPort einrichten
  51.   If *ddreply
  52.     AddPort_ *ddreply                       ; ReplyPort in Systemliste eintragen
  53.     BSR main                                ; Hauptprogramm starten
  54.     RemPort_ *ddreply                       ; ReplyPort aus Systemliste entfernen
  55.     DeleteMsgPort_ *ddreply                 ; ReplyPort freigeben
  56.   EndIf
  57.   FreeVec_ *ddmsg                           ; Arbeitsspeicher freigeben
  58. EndIf
  59. End
  60.  
  61. ; -------------------------------------------------------------
  62. ; Versions-String
  63. ; -------------------------------------------------------------
  64.  
  65. .copyright
  66.   Dc.b "$VER: Infotest 0.1 (13.04.99) by J.Reinert",0
  67.   Even
  68.  
  69. ; -------------------------------------------------------------
  70. ; Message an DragonDaemon schicken
  71. ; -------------------------------------------------------------
  72.  
  73. Function.l Send2Daemon{command.l,arg0.l,arg1.l,opt.l}
  74.   SHARED *ddmsg,*ddreply                        ; Globale Variablen
  75.   error=1                                       ; Fehler auf 1 setzen
  76.   *ddmsg\dd_StdMsg\mn_ReplyPort=*ddreply        ; ReplyPort in Message schreiben
  77.   *ddmsg\dd_StdMsg\mn_Length=SizeOf.DD_Message  ; Laenge der Message eintragen
  78.   *ddmsg\dd_Command =command                    ; DragonDaemon-Befehl eintragen
  79.   *ddmsg\dd_Arg0    =arg0                       ; Erster Parameter
  80.   *ddmsg\dd_Arg1    =arg1                       ; Zweiter Parameter
  81.   *ddmsg\dd_Options =opt                        ; Optionen
  82.   *ddmsg\dd_StdMsg\mn_Node\ln_Type=#NT_MESSAGE  ; Struktur-Typ=Message
  83.   dcrx=FindPort_(Null("DragonDaemon"))          ; MessagePort des Daemon suchen
  84.   If dcrx<>0                                    ; Wenn Port gefunden...
  85.     PutMsg_ dcrx,*ddmsg                         ; Message an Port schicken
  86.     WaitPort_ *ddreply                          ; warten auf Antwort
  87.     Repeat                                      ; Alle Nachrichten vom ReplyPort holen
  88.       dummy=GetMsg_(*ddreply)
  89.       If dummy<>0
  90.         error=*ddmsg\dd_Return                  ; Fehler aus Reply holen
  91.       EndIf
  92.     Until dummy=0
  93.   EndIf
  94.   Function Return error
  95. End Function
  96.  
  97. ; -------------------------------------------------------------
  98. ; Hauptprogramm
  99. ; -------------------------------------------------------------
  100.  
  101. .main
  102.   error=Send2Daemon{#DDCMD_INFO,Null("Dies ist eine Info!"),0,0}
  103. RTS
  104.  
  105.